package com.film.item.domain;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.film.common.annotation.Excel;
import com.film.common.core.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 创建项目对象 item
 * 
 * *@author fy
 * @date 2025-02-14
 */
@Data
public class Item extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 序号 */
    private Long id;

    /** 项目名称 */
    @Excel(name = "项目名称")
    private String itemName;

    /** 项目编号 */
    @Excel(name = "项目编号")
    private String itemId;

    /** 项目类型 */
    @Excel(name = "项目类型")
    private String itemType;

    /** 项目状态 */
    @Excel(name = "项目状态")
    private String itemStatus;

    /** 项目开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "项目开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date itemBegindate;

    /** 项目结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "项目结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date itemOverdate;

    /**创建时间*/
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @DateTimeFormat(pattern ="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createtime;  // 创建时间,用Datetime日期类型
    /** 更新时间 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @DateTimeFormat(pattern ="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updatetime;  // 修改时间,用Datetime日期类型

    /** 项目负责人 */
    @Excel(name = "项目负责人")
    private String itemDerector;

    /** 团队成员 */
    @Excel(name = "团队成员")
    private String itemTeam;

    /** 预算金额 */
    @Excel(name = "预算金额")
    private BigDecimal itemBudget;

    /** 实际消费 */
    @Excel(name = "实际消费")
    private BigDecimal itemExpend;

    /** 备注 */
    @Excel(name = "备注")
    private String itemNotes;

    /** 版本 */
    @Excel(name = "版本")
    private Integer vision;

    /** 删除次数 */
    @Excel(name = "删除次数")
    private Integer deleted;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setItemName(String itemName) 
    {
        this.itemName = itemName;
    }

    public String getItemName() 
    {
        return itemName;
    }
    public void setItemId(String itemId) 
    {
        this.itemId = itemId;
    }

    public String getItemId() 
    {
        return itemId;
    }
    public void setItemType(String itemType) 
    {
        this.itemType = itemType;
    }

    public String getItemType() 
    {
        return itemType;
    }
    public void setItemStatus(String itemStatus) 
    {
        this.itemStatus = itemStatus;
    }

    public String getItemStatus() 
    {
        return itemStatus;
    }
    public void setItemBegindate(Date itemBegindate) 
    {
        this.itemBegindate = itemBegindate;
    }

    public Date getItemBegindate() 
    {
        return itemBegindate;
    }
    public void setItemOverdate(Date itemOverdate) 
    {
        this.itemOverdate = itemOverdate;
    }

    public Date getItemOverdate() 
    {
        return itemOverdate;
    }
    public void setItemDerector(String itemDerector) 
    {
        this.itemDerector = itemDerector;
    }

    public String getItemDerector() 
    {
        return itemDerector;
    }
    public void setItemTeam(String itemTeam) 
    {
        this.itemTeam = itemTeam;
    }

    public String getItemTeam() 
    {
        return itemTeam;
    }
    public void setItemBudget(BigDecimal itemBudget) 
    {
        this.itemBudget = itemBudget;
    }

    public BigDecimal getItemBudget() 
    {
        return itemBudget;
    }
    public void setItemExpend(BigDecimal itemExpend) 
    {
        this.itemExpend = itemExpend;
    }

    public BigDecimal getItemExpend() 
    {
        return itemExpend;
    }
    public void setItemNotes(String itemNotes) 
    {
        this.itemNotes = itemNotes;
    }

    public String getItemNotes() 
    {
        return itemNotes;
    }
    public void setVision(Integer vision) 
    {
        this.vision = vision;
    }

    public Integer getVision() 
    {
        return vision;
    }
    public void setDeleted(Integer deleted) 
    {
        this.deleted = deleted;
    }

    public Integer getDeleted() 
    {
        return deleted;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("itemName", getItemName())
            .append("itemId", getItemId())
            .append("itemType", getItemType())
            .append("itemStatus", getItemStatus())
            .append("itemBegindate", getItemBegindate())
            .append("itemOverdate", getItemOverdate())
            .append("createtime", getCreatetime())
            .append("updatetime", getUpdatetime())
            .append("itemDerector", getItemDerector())
            .append("itemTeam", getItemTeam())
            .append("itemBudget", getItemBudget())
            .append("itemExpend", getItemExpend())
            .append("itemNotes", getItemNotes())
            .append("vision", getVision())
            .append("deleted", getDeleted())
            .toString();
    }
}
